package com.qk.controller;

import com.qk.common.Result;
import com.qk.dto.UserDto;
import com.qk.entity.User;
import com.qk.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@Slf4j
@RequestMapping("/users")
@RestController
public class UserController {
    @Autowired
    private UserService userService;

    // 用户列表查询——————展示用户列表
    @GetMapping
    public Result list(UserDto userDto){    // 【UserDto】已被封装在实体类中：【封装前端请求参数】———当前端[请求参数较多]且是[多表联合查询]时，建议封装成DTO类
        log.info("用户列表查询: {}" , userDto);
        return Result.success(userService.list(userDto));  // 像这样通过UserDto封装后，也避免了在调用service层时参数过多
        // 这里userService.list(userDto)↑返回的是PageResult<User>类型
    }

    // 新增用户
    @PostMapping
    public Result add(@RequestBody User user){
        log.info("新增用户: {}" , user);
        userService.add(user);
        return Result.success();    // 新增用户不需要返回值，不报错即是成功添加，所以这里直接是success()
    }

}
